The rise of the computer age has resulted in increased access to personalized services online. As the cost of electronics and networks drop, many services that were previously provided in person are now provided remotely over the Internet. For example, entertainment has increasingly shifted to the online space with companies streaming television (TV) shows and movies to members at home. Similarly, electronic mail (e-mail) has reduced the need for letters to be physically delivered. Instead, messages can be sent over networked systems almost instantly. Online social networking sites allow members to build and maintain personal and business relationships in a much more comprehensive and manageable manner.
As more and more services are provided online, large amounts of data are generated consistently. Much of this data needs to be saved for later use. For example, messages, search histories, browsing histories, and statistical analyses of data need to be saved to be useful in the future. With so much data needing to be saved, storage systems need to be able to accommodate a large amount of data reliably. However, such systems are generally unable to guarantee that all of the storage components will operate completely without errors or failures. As such, large storage systems often operate over a network to store multiple copies of important data at multiple locations. This improves the reliability and usefulness of a storage system. This data is then ideally transferred to backup locations without data loss or corruption.
Large data stores also facilitate data recovery in case of a crash by storing a transaction log for a given database. Thus, each time the database is changed, the change is recorded in a transaction log. This allows all the changes to be stored in a relatively compact form. Then, if the database crashes, the transaction log can be used to rebuild a correct and current version of the database. This is accomplished by reapplying all the changes in the correct order to the original data set. However, because of the need for strict ordering to ensure accurate representation, the change log is stored in a serial format. Using a serial list of changes to restore data that was originally entered concurrently can take much longer than would be desirable.
Like reference numerals refer to the same or similar parts throughout the drawings.